1. Field of the Invention
The present invention relates to an image forming apparatus, a method for controlling thereof, and a storage medium used therein.
2. Description of the Related Art
In association with the development of digital printing, variable data printing (hereinafter referred to as “VDP”) featuring the digital printing has been drawing attention for a long time. A print method in which a part of a print product is changed as variable data per unit maximally exploits characteristics of a digital printer such as an electrophotography. In an early stage of the VDP, different VDP languages are used in different companies. However, Personalized Print Markup Language (PPML) is currently defined as a standard language as the VDP language and therefore the PPML is widely used now.
In the PPML, two objects such as a reusable object that is repetitively referred to and a local object that is referred to only once are exemplified as components for drawing a page. The reusable object is used in a case of placing a single drawing object at a plurality of places within a page, between pages, or between jobs. The drawing object, e.g., the local object and the reusable object, is normally described in the form of the PostScript (registered trademark; hereinafter referred to as “PS”) and the Portable Document Format (PDF) as source drawing data. The above-described pieces of the source drawing data are subjected to raster image processor (RIP) processing to be formed into raster images and thereafter placed on a page.
In a case of the reusable object of the PPML that is surely reused, the raster image obtained by the RIP processing from the source drawing data is cached. As a result, a remarkably high speed drawing processing can be achieved. However, in a case where the raster image is a high resolution and high gradation color image, the raster image could be extremely large size. Therefore, a memory having a large capacity is required. To solve the above issue, there is a method in which a display list (i.e., intermediate data) immediately before converted into the raster image is generated from the source drawing data to cache it. It takes a time to render the display list but a memory capacity required for caching can be reduced remarkably. That is, the above-described method is a compromise plan in consideration with a balance between the memory capacity and performance.
On the other hand, development in clock performance in a central processing unit (CPU) that performs the RIP processing of the VDP has recently peaked, so that a multi-core technique in which a plurality of cores are packed together in a single package has advanced. To get great performance out of the multi-core CPU, parallelization of RIP processing is essential and thus some methods are discussed as a parallel processing method of PDL data including the VDP.
For example, there is a job parallel processing method in which a plurality of jobs are subjected to the RIP processing in parallel by a plurality of processor cores. In the job parallel processing method, an entire productivity can be improved in a case where a vast number of jobs are to be processed. However, when observing a single job among the vast number of jobs, a time required for the RIP processing is the same as a case where the job is processed by a single-core CPU. Therefore, the job parallel processing method is not considered as a suitable method for the VDP job that requires a shortened turnaround time.
There is another method, i.e., a page parallel processing method, in which a plurality of pages within a single job are subjected to the RIP processing in parallel by the plurality of cores. In the page parallel processing method, a high speed processing can be expected also with respect to the single job. However, an independent PDL language (VDP language) having no dependence relationship between pages is to be used. In addition, when observing only a single page in the job, a time required for the RIP processing is the same as a time required in the processing by a single processor core. The RIP processing of a page including a complex drawing often requires more time, which still may be a bottleneck also in the page parallel processing method.
There is further another method, i.e., an object parallel processing method, in which a plurality of drawing objects within a single page is subjected to the RIP processing in parallel by a plurality of processor cores. In the object parallel processing method, a time required in the RIP processing of the single page can be shortened. However, it is known that a calculation cost required in dividing and collecting the objects is high.
When considering an efficiency of the parallel processing, the job parallel processing method or the page parallel processing method is more desirable. Japanese Patent Application Laid-Open No. 2009-172913 discusses a record parallel processing method in which a job is divided per record defined by the VDP and the divided jobs are subjected to the RIP processing in parallel by a plurality of processor cores per record as an example of the parallel processing method specialized for the VDP. Manufacturing of a personalized print product for realizing One-to-One marketing exists as the purpose of the VDP. Generally, the VDP data for the single user is referred to as a record.
A high speed VDP using the parallel processing by the multi-core CPU is expected. However, a problem unique to the VDP exists. In the page parallel processing method, if a single reusable object is referred to concurrently in a plurality of pages to be subjected to the RIP processing, efficiency is down. This is because there is a requirement in subjecting a single reusable object to RIP processing redundantly by a plurality of processor cores or in waiting for a completion of the RIP processing of one of the processor cores. If the RIP processing is performed redundantly, effect of the cache processing of the reusable object as a large merit of the VDP is lost. On the other hand, if queue processing is performed, there is generated waste of CPU time due to the queue.
Typically, RIP processing of the reusable object occurs a lot near a head of the job and thus high speed processing becomes possible by the cache processing as the job develops. Therefore, it can be said that the page parallel processing method in the VDP is not good at handling the head of the job but is good at handling last half of the job.
The object parallel processing is considered as a method that can relatively go well with the VDP language such as PPML in which the local object and the reusable object are explicitly defined. This is because a calculation cost required for the division and the collection of the objects can be relatively kept low.
The reuse of the object is often performed between jobs, between records, or between pages but seldom performed within a page. Since the division of the object depends on a VDP application that generates the VDP data, effect cannot be expected in VDP data in which a page is composed of less number of objects. Further, since the reuse of the reusable object that is cached as the development of the job increases, the number of objects to be subjected to the parallel processing decreases. In other words, the object parallel processing method in the VDP is good at handling the head of the job but is not good at handling rather in the last half of the job.
As described above, there is a circumstance unique to the VDP in the parallel processing method of the RIP in the VDP. Therefore, there are good points and bad points independent from which processing method is selected.